home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.text.html;
-
- import java.awt.Container;
- import java.awt.Graphics;
- import java.awt.Rectangle;
- import java.awt.Shape;
- import javax.swing.SizeRequirements;
- import javax.swing.event.DocumentEvent;
- import javax.swing.text.AttributeSet;
- import javax.swing.text.CompositeView;
- import javax.swing.text.Element;
- import javax.swing.text.JTextComponent;
- import javax.swing.text.View;
- import javax.swing.text.ViewFactory;
- import javax.swing.text.html.CSS.Attribute;
-
- public class ParagraphView extends javax.swing.text.ParagraphView {
- private AttributeSet attr;
- private StyleSheet.BoxPainter painter;
-
- public ParagraphView(Element var1) {
- super(var1);
- StyleSheet var2 = this.getStyleSheet();
- this.attr = var2.getViewAttributes(this);
- this.painter = var2.getBoxPainter(this.attr);
- }
-
- protected SizeRequirements calculateMinorAxisRequirements(int var1, SizeRequirements var2) {
- var2 = super.calculateMinorAxisRequirements(var1, var2);
- float var3 = 0.0F;
- int var4 = ((javax.swing.text.ParagraphView)this).getLayoutViewCount();
-
- for(int var5 = 0; var5 < var4; ++var5) {
- View var6 = ((javax.swing.text.ParagraphView)this).getLayoutView(var5);
- if (var6 instanceof InlineView) {
- float var7 = ((InlineView)var6).getLongestWordSpan();
- var3 = Math.max(var7, var3);
- } else {
- var3 = Math.max(var6.getMinimumSpan(var1), var3);
- }
- }
-
- var2.minimum = (int)var3;
- var2.preferred = Math.max(var2.minimum, var2.preferred);
- var2.maximum = Math.max(var2.preferred, var2.maximum);
- return var2;
- }
-
- public void changedUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
- StyleSheet var4 = this.getStyleSheet();
- this.attr = var4.getViewAttributes(this);
- super.changedUpdate(var1, var2, var3);
- }
-
- public AttributeSet getAttributes() {
- return this.attr;
- }
-
- public float getMaximumSpan(int var1) {
- return !this.isVisible() ? 0.0F : super.getMaximumSpan(var1);
- }
-
- public float getMinimumSpan(int var1) {
- return !this.isVisible() ? 0.0F : super.getMinimumSpan(var1);
- }
-
- public float getPreferredSpan(int var1) {
- return !this.isVisible() ? 0.0F : super.getPreferredSpan(var1);
- }
-
- protected StyleSheet getStyleSheet() {
- HTMLDocument var1 = (HTMLDocument)((View)this).getDocument();
- return var1.getStyleSheet();
- }
-
- public boolean isVisible() {
- int var1 = ((javax.swing.text.ParagraphView)this).getLayoutViewCount() - 1;
-
- for(int var2 = 0; var2 < var1; ++var2) {
- View var3 = ((javax.swing.text.ParagraphView)this).getLayoutView(var2);
- if (var3.isVisible()) {
- return true;
- }
- }
-
- if (var1 > 0) {
- View var5 = ((javax.swing.text.ParagraphView)this).getLayoutView(var1);
- if (var5.getEndOffset() - var5.getStartOffset() == 1) {
- return false;
- }
- }
-
- if (((View)this).getStartOffset() == ((View)this).getDocument().getLength()) {
- boolean var6 = false;
- Container var4 = ((View)this).getContainer();
- if (var4 instanceof JTextComponent) {
- var6 = ((JTextComponent)var4).isEditable();
- }
-
- if (!var6) {
- return false;
- }
- }
-
- return true;
- }
-
- public void paint(Graphics var1, Shape var2) {
- Rectangle var3;
- if (var2 instanceof Rectangle) {
- var3 = (Rectangle)var2;
- } else {
- var3 = var2.getBounds();
- }
-
- this.painter.paint(var1, (float)var3.x, (float)var3.y, (float)var3.width, (float)var3.height, this);
- super.paint(var1, var2);
- }
-
- public void setParent(View var1) {
- super.setParent(var1);
- this.setPropertiesFromAttributes();
- }
-
- protected void setPropertiesFromAttributes() {
- if (this.attr != null) {
- super.setPropertiesFromAttributes();
- ((CompositeView)this).setInsets((short)((int)this.painter.getInset(1, this)), (short)((int)this.painter.getInset(2, this)), (short)((int)this.painter.getInset(3, this)), (short)((int)this.painter.getInset(4, this)));
- Object var1 = this.attr.getAttribute(Attribute.TEXT_ALIGN);
- if (var1 != null) {
- String var2 = var1.toString();
- if (var2.equals("left")) {
- ((javax.swing.text.ParagraphView)this).setJustification(0);
- } else if (var2.equals("center")) {
- ((javax.swing.text.ParagraphView)this).setJustification(1);
- } else if (var2.equals("right")) {
- ((javax.swing.text.ParagraphView)this).setJustification(2);
- } else if (var2.equals("justify")) {
- ((javax.swing.text.ParagraphView)this).setJustification(3);
- }
- }
- }
-
- }
- }
-